<?php namespace App\Http\Services;

class ToolsManager
{
    /**
     * 生成订单编号
     * @return string
     */
    public static function makeBillNum(){
        $orderSn = date('Ymdhis',time()). substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 999));
        return $orderSn;
    }

    /**
     * 生成退款单号
     * @return string
     */
    public static function makeBRefundNum(){
        $orderSn = date('Ymdhis',time()). substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 999)) . '@tui';
        return $orderSn;
    }

    /**
     * 生成六位数的邀请码
     * @return false|string
     */
    public static function makeInviteCode(){
        $data = substr(base_convert(md5(uniqid(md5(microtime(true)),true)), 16, 10), 0, 6);
        return $data;
    }

    /**
     * base64图片转化
     * @param $img_file
     * @return string
     */
    public static function base64EncodeImage($img_file) {
//        $base64_image = '';
//        $image_info = getimagesize($image_file);
        $img_base64 = '';
        if (file_exists($img_file)) {
            $app_img_file = $img_file; // 图片路径
            $img_info = getimagesize($app_img_file); // 取得图片的大小，类型等

            //echo '<pre>' . print_r($img_info, true) . '</pre><br>';
            $fp = fopen($app_img_file, "r"); // 图片是否可读权限

            if ($fp) {
                $filesize = filesize($app_img_file);
                $content = fread($fp, $filesize);
                $file_content = chunk_split(base64_encode($content)); // base64编码
                switch ($img_info[2]) {           //判读图片类型
                    case 1: $img_type = "gif";
                        break;
                    case 2: $img_type = "jpg";
                        break;
                    case 3: $img_type = "png";
                        break;
                }

                $img_base64 = $file_content;//合成图片的base64编码

            }
            fclose($fp);
        }

        return $img_base64; //返回图片的base64
    }

    /**
     * 获取最近七天所有日期
     */
    public static function getWeeks(){
        $time = time();
        //组合数据
        $date = [];
        for ($i=1; $i<=7; $i++){
//            $d = [
//                "start_time" => date("Y-m-d 00:00:00" ,strtotime( '+' . $i-7 .' days', $time)),
//                "end_time"   => date("Y-m-d 23:59:59" ,strtotime( '+' . $i-7 .' days', $time))
//            ];
            $date[$i] = date("Y-m-d 23:59:59" ,strtotime( '+' . $i-7 .' days', $time));
        }
        return $date;
    }
}